;;; guix-config --- additional software for a custom configuration of gnu-guix
;;; Copyright © 2020 Kolya <kolya.daemon@vfemail.net>
;;;
;;; This file is part of guix-config
;;;
;;; guix-config is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; guix-config is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (kolyad packages manifests)
  #:use-module (gnu packages)
  #:use-module (guix utils)
  #:use-module (srfi srfi-1)
  #:export (specifications-lists->manifest
            specsls->manif))
            
(define (specifications-lists->manifest . specifications-lists)
  (specifications->manifest
    (delete-duplicates (apply append specifications-lists))))

(define-syntax specsls->manif
  (syntax-rules ()
    ((specsls->manif exp ...)
     (specifications-lists->manifest exp ...))))

;;
;; Desktop
;;

(define-public desktop
  '(
    "polkit-gnome"

    "pulseaudio"
    ;;"pipewire"

    "xdg-user-dirs"
    "xdg-utils"

    "python-pywal"
    ))

(define-public hikari
  '(
    "hikari"

    "alacritty"

    "waybar"

    "j4-dmenu-desktop"
    "bemenu"
    ))

(define-public sway
  '(
    "sway"
    "swaybg"
    "swaylock"
    "swayidle"

    "alacritty"

    "waybar"

    "j4-dmenu-desktop"
    "bemenu"
    ))

(define-public fonts
  '(
    "fontconfig"

    "font-gnu-freefont"
    "font-dejavu"
    "font-wqy-zenhei"

    "font-hack"
    "font-awesome"
    ;;"font-terminus-ttf"
    ))

(define-public themes
  '(
    "adwaita-icon-theme"
    "gnome-themes-standard"
    ))

(define-public flatpak
  '(
    "bubblewrap"
    "flatpak"
    "xdg-dbus-proxy"
    "xdg-desktop-portal"
    "xdg-desktop-portal-gtk"
    ))

(define-public util-desktop
  '(
    "grim"
    "slurp"

    "redshift-wayland"
    "kanshi"

    "xeyes"

    "pulsemixer"
    "alsa-utils"
    ))

(define-public internet-feed
  '(
    "newsboat"
    "weechat"

    "youtube-dl"
    ))

(define-public web
  '(
    "firefox-wayland"
    ))

(define-public mm-image
  '(
    "imv"
    "vlc"

    "zathura"
    "zathura-ps"
    "zathura-djvu"
    "zathura-pdf-mupdf"
    "zathura-cb"

    "calibre"
    ))

(define-public mm-audio
  '(
    "cmus"

    "beets"
    "sox"
    "demlo"
    ))

(define-public mm-mastering
  '(
    "ffmpeg"
    "dvdauthor"
    "xorriso"
    "cdrtools"
    "dvd+rw-tools"
    ))

(define-public games
  '(
    "steam"
    ))

(define-public editor
  '(
    "neovim"
    ))

(define-public dictionary
  '(
    "hunspell"

    "aspell"

    "aspell-dict-en"
    "aspell-dict-es"
    "aspell-dict-ru"
    ))

(define-public typesetting
  '(
    "texlive"
    "plotutils"
    ))


;;;
;;; Utilities
;;;

(define-public util-shell
  '(
    "file"
    "tree"

    "strace"
    "ltrace"

    "neofetch"
    "figlet"
    "bc"

    "python"
    ))

(define-public util-file
  '(
    "zip"
    "unzip"
    "lbzip2"
    "plzip"
    "pbgzip"
    "p7zip"
    "pigz"
    "pixz"
    "tar"

    "wget"

    "stow"
    "rsync"
    ))

(define-public util-proc
  '(
    "htop"
    "iotop"
    "iftop"
    "lsof"
    ))

(define-public util-net
  '(
    "whois"
    "nmap"
    ))

(define-public util-mail
  '(
    "mailutils"
    "getmail"
    ))

(define-public util-pgp
  '(
    "gnupg"
    "pinentry-tty"
    "pgpdump"
    ))

(define-public util-android
  '(
    "abootimg"
    "adb"
    "fastboot"
    "mkbootimg"
    ))

(define-public util-bootloader
  '(
    "efibootmgr"
    "efitools"
    "efivar"
    "sbsigntools"
    ))

;;
;; Development
;;

(define-public toolchain
  '(
    "meson"
    "ninja"
    "ccache"

    "autoconf"
    "automake"
    "gettext"
    "libtool"
    "make"
    "pkg-config"
    ))

(define-public debugger
  '(
    "gdb"
    "rr"
    "valgrind"
    "lldb"
    ))

(define-public svc
  '(
    "git"
    ;;"mu-repo"
    "tig"
    ))

(define-public c+cpplang
  '(
    "clang-toolchain"
    "llvm"
    ))

(define-public rustlang
  '("rust"
    "rust:cargo"))

(define-public schemelang
  '(
    "mit-scheme"
    "akku"
    "guile"
    ;;"cyclone"
    ))

(define-public hasklang
  '(
    "ghc"
    "ghc-haskell-src-meta"
    ;;"husk"
    ))

;;
;; Research
;;

(define-public fwresearch
  '(
    ;;"coreboot"
    ;;"coreboot-utils"
    "ifdtool"
    "intelmetool"
    "me-cleaner"
    "dfu-programmer"
    "dfu-util"
    "flashrom"
    ))

(define-public util-reversing
  '(
    ;;"ghidra"
    "radare2"
    "python-binwalk"
    ))

;;
;; Infosec
;;

(define-public sec-crack
  '(
    "john-the-ripper-jumbo"
    "hashcat"
    "hashcat-utils"
    ))

(define-public sec-net
  '(
    "nmap"
    "aircrack-ng"
    ;;"openvas"
    ;;"p0f"
    ;;"ncat"
    ;;"zmap"
    ;;"dnstracer"
    ))

;;
;; Misc
;;


(define-public networks-dark
  '(
    "i2pd"
    "tor"
    "torsocks"
    ))


(define-public networks-vpn
  '(
    "openvpn"
    "wireguard-tools"
    ))

(define-public file-sharing
  '(
    "transmission"
    "transmission:gui"
    ;;"tin"
    ))

(define-public container
  '(
    "runc"

    "umoci"
    "skopeo"
    "buildah"
    ))

(define-public virtualization
  '(
    "qemu"
    ))

;;; vim: set expandtab tabstop=2 shiftwidth=2
;;; end of file manifests.scm
